package com.vhans.db.model.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 查询条件
 *
 * @author vhans
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(description = "查询条件")
public class ConditionDTO {
    /**
     * 搜索内容
     */
    @ApiModelProperty(value = "搜索内容")
    private String keyword;

    /**
     * 标签|评论类型(1记录 2题目)
     * 约起类型(1约会 2活动 3赛事 4帮忙)
     * 用户登录方式(1邮箱 2QQ 3Gitee 4Github)
     * 请求类型(1好友 2群聊)
     */
    @ApiModelProperty(value = "标评(1记2题);起(1约2活3赛4帮);登(1邮2Q3e4h);请(1友2群)")
    private Integer type;

    /**
     *  实体id
     */
    @ApiModelProperty(value = "实体id")
    private Integer entityId;

    /**
     *  约会发出类型 (1广播 2指定)
     */
    @ApiModelProperty(value = "约会发出类型 (1广播 2指定)")
    private Integer issuingType;

    /**
     * 消息类型(0系统 1文本 2图片 3视频 4文件)
     */
    @ApiModelProperty(value = "消息类型(0系统 1文本 2图片 3视频 4文件)")
    private Integer msgType;

    /**
     * 约起状态 (1发出 2草稿 3完成 4过期 5取消)
     * 任务状态 (0运行 1暂停)
     * 请求状态(1通过 2已拒绝 3申请中)
     */
    @ApiModelProperty(value = "约起(1发2草3完4过5取);任务(0运1暂);请求(1过2拒3中)")
    private Integer status;

    /**
     * 标签ids
     */
    @ApiModelProperty(value = "标签ids")
    private List<Integer> tagIds;

    /**
     * 是否删除 (0否 1是)
     */
    @ApiModelProperty(value = "是否删除 (0否 1是)")
    private Integer isDelete;

    /**
     * 是否通过 (0否 1是)
     */
    @ApiModelProperty(value = "是否通过 (0否 1是)")
    private Integer isCheck;

    /**
     * 是否解答 (0否 1是)
     */
    @ApiModelProperty(value = "是否解答 (0否 1是)")
    private Integer isSolve;

    /**
     * 是否禁用 (0否 1是)
     */
    @ApiModelProperty(value = "是否禁用 (0否 1是)")
    private Integer isDisable;

    /**
     * 操作模块
     */
    @ApiModelProperty(value = "操作模块")
    private String optModule;

    /**
     * 任务组名
     */
    @ApiModelProperty(value = "任务组名")
    private String taskGroup;

    /**
     * 调用目标
     */
    @ApiModelProperty(value = "调用目标")
    private String invokeTarget;

    /**
     * 文件路径
     */
    @ApiModelProperty(value = "文件路径")
    private String filePath;

    /**
     * 房间号(发出ID_接收ID)
     */
    @ApiModelProperty(value = "房间号")
    private String roomId;

    /**
     * 群id
     */
    @ApiModelProperty(value = "群id")
    private Integer groupId;

    /**
     * 开始时间
     */
    @ApiModelProperty(value = "开始时间")
    private LocalDateTime startTime;

    /**
     * 结束时间
     */
    @ApiModelProperty(value = "结束时间")
    private LocalDateTime endTime;

    /**
     * 起始索引
     */
    @ApiModelProperty(value = "起始索引")
    private String pageNum;

    /**
     * 每页显示数
     */
    @ApiModelProperty(value = "每页显示数")
    private String pageSize;
}
